//检测网络状态
// internetCheck();

//检测GPS状态
// gpsCheck();

//进入打卡流程
punchTheClock();

//输入密码，解锁屏幕
function password_input() {
    var password = "输入自己的密码"
    for (var i = 0; i < password.length; i++) {
        var p = text(password[i].toString()).findOne().bounds();
        click(p.centerX(), p.centerY());
        sleep(100);
    }
}

//检查屏幕是否唤醒，否则唤醒解锁
function unlock() {
    if (!device.isScreenOn()) {
		//唤醒屏幕
        // device.wakeUpIfNeeded();
        device.wakeUp();
		//程序休眠l秒
        sleep(1000)
		//滑动屏幕
        swipe(550, 2260, 550, 1200, 200);
        sleep(500);
		//调用解说屏幕的方法
        password_input();
    }
}

//强制关闭钉钉
function closeDingTalk(){
    /**
     * 关闭钉钉（这个关闭操作根据自己设备具体情况配置）
     * 确保打开钉钉时，进入的是主页
     */
    // home();
    // sleep(1000);
	//打开系统的钉钉强制关闭页面
    openAppSetting(getPackageName("钉钉"));
    sleep(3 * 1000);
	//点击强行停止
    click("强行停止");
    sleep(500);
	//点击坐标点
    click(760,2250);
    sleep(500);

    home();
    sleep(1000);
}

//打开钉钉
function openDingTalk() {
    launchApp("钉钉");
    sleep(5 * 1000);

    //判断是否已登录
    if (id("tv_welcome_name").exists()) {
        console.error("钉钉未登录");
		//退出程序
        exit();
    }

    //点击忽略更新（如果有）
    if (click("暂不更新")) {
        console.log("点击暂不更新");
    }

    //点击工作台
    clickMessage("工作台");
    sleep(1000);

    //点击上报进入打卡页面
    // clickMessage("学生健康上报");
    click(130,980);
    sleep(5 * 1000);
}

//健康上报
function healthSubmit() {
    swipe(520, 1900, 525, 650, 200);
    sleep(500);
    //选择在校状态
    click(520,1282)
    sleep(500);
    click("在校")
    sleep(500);
    //点击防电信诈骗
    click(67,1520)
    sleep(500);
    //屏幕上划
    swipe(520, 2100, 525, 100, 200);
    swipe(520, 2100, 525, 100, 200);
    sleep(1000)
    //获取定位
    clickMessage("获取定位")
    sleep(5 * 1000);
    //核酸检测
    click(350,1208);
    sleep(100);
    //中高风险地区
    click(350,1640);
    sleep(100);
    //健康码
    click(105,1930);
    sleep(200);
    //添加签名
    clickMessage("添加签名")
    sleep(500)
    clickMessage("使用")
    sleep(500) 
    //点击提交
    clickMessage("提交")
    sleep(3 * 1000)
}

function punchTheClock() {
    unlock();
    //脚本执行时保持屏幕常亮
    device.keepScreenDim(5 * 1000);
    openDingTalk();
    healthSubmit();

    //返回主页
    home();
    sleep(1 * 1000);

    //关闭屏幕常亮
    device.cancelKeepingAwake();

}

//判断网络情况，如果没有网络，结束脚本运行
function internetCheck() {
    toast("检测网络情况")
    var url = "m.baidu.com";
    var res = http.get(url);
    if (res.statusCode != 200) {
        toast("网络不可用，无法打卡");
        exit();
    }
}

//判断GPS是否可用，如果不可用，结束脚本运行
function gpsCheck() {
    toast("检测GPS是否可用")
    importClass(android.location.LocationManager);
    importClass(android.content.Context);
    var locationManager = context.getSystemService(Context.LOCATION_SERVICE);
    if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
        toast("GPS不可用，无法打卡");
        exit();
    }
}

//根据控件文字点击，如果点击失败，则说明打卡流程无法正常进行，结束脚本运行
function clickMessage(message) {
    var n = 3;
    var logo = false;
    while (n--) {
        if (click(message)) {
            logo = true;
            break;
        }
        sleep(1000);
    }
    if (logo == false) {
        toast("点击" + message + "出错");
        exit();
    }
}